﻿using DAL;
using S7.Net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MainOP
{
    public partial class FormProductionScheduling : Form
    {
        public FormProductionScheduling()
        {
            InitializeComponent();
        }
        
        private void FormProductionScheduling_Load(object sender, EventArgs e)
        {
            string sql = "select [typeName] from parameterSetting";
            SqlDataReader objReader = SQLHelp.GetReader(sql);
            while (objReader.Read())
            {
                if (objReader["typeName"].ToString() != "")
                {
                    comboBox1.Items.Add(objReader["typeName"].ToString());
                }
            }
            objReader.Close();
            comboBox1.SelectedIndex = 0;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (Convert.ToInt32(textBox1.Text) > 0 && textBox1.Text != "")
                {
                    //计划生产数
                    FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 6, Convert.ToInt16(textBox1.Text));
                    
                    //将参数下发PLC
                    string sql = "select [saveDate], [typeName], [产品系列号], [OP10螺钉数1], [OP10螺钉数2], [OP10节拍], [OP20螺钉数1], [OP20螺钉数2], [OP20节拍], [OP30螺钉数1], [OP30螺钉数2], [OP30节拍], [OP40螺钉数1], [OP40螺钉数2], [OP40节拍], [OP50螺钉数1], [OP50螺钉数2], [OP50节拍], [OP60螺钉数1], [OP60螺钉数2], [OP60节拍], [OP70螺钉数1], [OP70螺钉数2], [OP70节拍], [OP80螺钉数1], [OP80螺钉数2], [OP80节拍], [OP90正压程序号], [OP90负压程序号], [OP90节拍], [OP110节拍], [OP130节拍] from parameterSetting where typeName = '{0}'";
                    sql = string.Format(sql, comboBox1.Text);
                    SqlDataReader objReader = SQLHelp.GetReader(sql);
                    while (objReader.Read())
                    {
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 1, Convert.ToByte(Convert.ToInt32(objReader["产品系列号"])+1));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 17, Convert.ToByte(Convert.ToInt32(objReader["OP10螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 18, Convert.ToByte(Convert.ToInt32(objReader["OP10螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 147, Convert.ToByte(Convert.ToInt32(objReader["OP10节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 27, Convert.ToByte(Convert.ToInt32(objReader["OP20螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 28, Convert.ToByte(Convert.ToInt32(objReader["OP20螺钉数2"])));    
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 157, Convert.ToByte(Convert.ToInt32(objReader["OP20节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 37, Convert.ToByte(Convert.ToInt32(objReader["OP30螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 38, Convert.ToByte(Convert.ToInt32(objReader["OP30螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 167, Convert.ToByte(Convert.ToInt32(objReader["OP30节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 47, Convert.ToByte(Convert.ToInt32(objReader["OP40螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 48, Convert.ToByte(Convert.ToInt32(objReader["OP40螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 177, Convert.ToByte(Convert.ToInt32(objReader["OP40节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 57, Convert.ToByte(Convert.ToInt32(objReader["OP50螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 58, Convert.ToByte(Convert.ToInt32(objReader["OP50螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 187, Convert.ToByte(Convert.ToInt32(objReader["OP50节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 67, Convert.ToByte(Convert.ToInt32(objReader["OP60螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 68, Convert.ToByte(Convert.ToInt32(objReader["OP60螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 197, Convert.ToByte(Convert.ToInt32(objReader["OP60节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 77, Convert.ToByte(Convert.ToInt32(objReader["OP70螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 78, Convert.ToByte(Convert.ToInt32(objReader["OP70螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 207, Convert.ToByte(Convert.ToInt32(objReader["OP70节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 87, Convert.ToByte(Convert.ToInt32(objReader["OP80螺钉数1"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 88, Convert.ToByte(Convert.ToInt32(objReader["OP80螺钉数2"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 217, Convert.ToByte(Convert.ToInt32(objReader["OP80节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 227, Convert.ToByte(Convert.ToInt32(objReader["OP90节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 237, Convert.ToByte(Convert.ToInt32(objReader["OP110节拍"])));
                        FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 257, Convert.ToByte(Convert.ToInt32(objReader["OP130节拍"])));
                        //初始化数组（被初始化的数组，       要清除的一系列元素的起始索引       ，被初始化的个数
                        //Array.Clear(FormMain.TimeRangeValue, 0,  FormMain.TimeRangeValue.Length);
                    }
                    objReader.Close();
                    //产品型号
                    FormMain.FMOP.PLC_Link[0].plc.Write(DataType.DataBlock, 99, 2, Convert.ToByte(comboBox1.SelectedIndex + 1));
                }
                else
                {
                    MessageBox.Show("非法输入，请输入大于0的值！");
                }
                
            }
            catch
            {
                MessageBox.Show("操作失败！");
            }
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
                e.Handled = (e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar!=8;
            if (e.Handled)
            {
                MessageBox.Show("非法输入，此处只能输入数字！请重新输入");
            }
        }
    }
}
